package com.das.mechanic_base.mvp.contract.create;

import com.das.mechanic_base.base.X3IBaseView;
import com.das.mechanic_base.bean.live.LiveSelectCarBean;
import com.das.mechanic_base.bean.main.CarDriLicBean;
import com.das.mechanic_base.bean.main.CarPicAndColorBean;
import com.das.mechanic_base.bean.main.CarPoolMainBean;
import com.das.mechanic_base.bean.main.CarSelectBean;
import com.das.mechanic_base.bean.main.HomeMainCarBean;
import com.das.mechanic_base.bean.main.UpadateReceBean;
import com.das.mechanic_base.bean.main.ValidCarBean;

import java.io.File;
import java.util.HashMap;
import java.util.List;

public interface X3CreateServiceContract {

    interface View extends X3IBaseView {

        void getStoreIconListSuccess(List<String> dataList);

        void getStoreCarNumReceiveSuccess(List<LiveSelectCarBean> datalist);

        void listStoreAllCarSuccess(CarPoolMainBean carPoolMainBean);

        /**
         * 查询车辆信息
         *
         * @param searchNumBean
         */
        void getCarInfo(ValidCarBean searchNumBean);

        /**
         * 创建接车单成功
         * @param receiveId
         * @param carNum
         */
        void createReceiveSuccess(long receiveId,String carNum);

        /**
         * 根据接车单id获取接车单数据
         *
         * @param mainCarBean
         */
        void getReceiveBase(HomeMainCarBean mainCarBean);

        /**
         * 更新接车单信息成功
         */
        void updateReceiveBaseSuccess(UpadateReceBean upadateReceBean);

        void updateReceiveBaseFailed();

        /**
         * 上传亚马逊头像成功
         * @param
         */
        void uploadHeaderSuccess();

        /**
         * 回传车牌号信息
         *
         * @param carNum
         */
        void getCarNum(String carNum);

        /**
         * 回传行驶证号信息
         *
         * @param driLicBean
         */
        void onGetDriLicNum(CarDriLicBean driLicBean);

        /**
         * 回传vin
         *
         * @param vin
         */
        void getVin(String vin);

        void getVinFail(String error);

        void uploadCarPicSuccess(CarPicAndColorBean colorBean);

    }

    interface Presenter {

        /**
         * 获取店铺车辆品牌图标
         */
        void getStoreIconList(List<String> mList);

        /**
         * 搜索车牌号
         * @param map
         */
        void getStoreCarNumReceive(HashMap<String,Object> map);

        /**
         * 车辆池
         */
        void listStoreAllCarNum();

        /**
         * 根据车牌号 查询车辆信息
         *
         * @param carNum
         */
        void searchByCarNum(String carNum);

        /**
         * 添加接车单
         *
         * @param carNum
         */
        void saveReceiveBase(String carNum);

        /**
         * 请求施工单数据
         *
         * @param receiveId
         */
        void getReceiveBase(long receiveId);

        /**
         * 更新接车单 车辆信息
         *
         * @param selectBean
         * @param carNum
         */
        void updateReceiveCar(CarSelectBean selectBean, String carNum);

        /**
         * 删除接车单
         *
         * @param receiveId
         */
        void deleteReceiveCar(long receiveId);

        /**
         * 创建接车单 上传车主头像
         * @param imgFile
         */
        void uploadHeaderAws(File imgFile, long carId);

        /**
         * 创建接车单之后，如果头像上传成功，保存头像到数据库
         */
        void updateCarOwnerUserPortrait(long carId, long resourceId);

        /**
         * 根据图片请求车牌号信息
         */
        void requestCarNum(File file);

        /**
         * 根据图片请求行驶证信息
         */
        void requestDriLicNum(File file);

        /**
         * 根据图片请求vin
         *
         * @param file
         */
        void requestVin(File file);

        /**
         * 上传车辆切割图
         */
        void uploadCarPic(long carId,String imgPath,String carNum);
    }
}
